摘要总结
通过express 的中间件实现了 graphql Persisted Queries,在前端查询时使用的普通的GET请求,带有hash变量和具体变量, hash变量用于从服务器获取到对应的查询或者突变 schema,然后和具体的变量组合成真正的查询字符窜, 之后实施真正的 Graphql 查询工作, 并返回信息给前端
实现要点:
1. 构建的hash 和查询的映射
extracted_queries.js
1 | module.exports = { |
2. 构建 Presist Query 中间件
persistedQueries.js
1 | const { omit } = require('ramda') |
如果 hash存在,就提取出查询字符串和变量组成新的查询
3. 构建 graphql server
1 | const express = require('express') |
构想
如果是常规的 Redux 构架, REST API太多, 造成 Action过多, 如果是使用上述的方法, 可以把一个大的页面的数据查询组合成一个单独的 REST请求. 简化了前端的 Action这样还可以使用不同的 GraphQL的数据